AddModuleConfiguration

此函式允许使用者透过覆写 EtherCAT 自动配置来新增无法被自动配置侦测到的装置。

此函式有两个用途:

  1. 新增无法透过自动配置侦测到的装置,例如 IO-Link、部份 CANopen 以及连接至耦合器的装置。
  2. 覆写 EtherCAT 自动配置。欲覆写自动配置,需在装置连接到 KINGSTAR 前使用此函式。

语法

KsError AddModuleConfiguration(
     int SlaveId,
     int ModuleId,
     KsConfigurationType ConfigurationType,
     VOID* Configuration
);

参数

SlaveId:从站阵列的索引。当 EtherCAT 从站装置启动时,此索引具有与 SlaveId 相同的值,该值对应于从站装置在网路中的位置。请注意,在 EtherCAT 进入运行 (Op) 状态后,加入或移除网路上的任何从站装置将改变各装置在网路中的位置 (SlaveId)。尽管如此,从站的索引将保持不变。新增的装置将排列在阵列的末端。对于更改后的所有从站,索引和 SlaveId 将不再匹配。上述行为模式仅适用于实体装置;不适用于模拟装置。详细资讯请参阅 EnableHotConnect 中的使用案例。

ModuleId:(连接至耦合器的装置)的模组 ID,此可以是槽 ID、连接埠 ID 或从站 ID。

ConfigurationType:装置与耦合器间的连接类型。请见 KsConfigurationType 类型。

Configuration:配置结构的指标,此取决于使用的通讯协定。例如,若协定为 IO-Link,则配置为 IoLinkSetting 结构。

回传值

如果此函式执行成功,会回传 errNoError,否则会传回错误码。如需更多有关错误码的资讯,请参阅 KsError 清单。

备注

此函式必须在 Create 后及 Start 前呼叫。

可用的 EtherCAT 状态

ecatOffline

范例

复制
// configIoLink
IoLinkSetting IoLink = {
    17, // IO-Link specification: Version 1.1
    0,  // SPDU
    3,  // Control
    32, // Input length
    0   // Output length
};

nRet = AddModuleConfiguration(
           2,               // EthercatSlaveID
           0,               // LinkedDeviceID
           configIoLink,    // Protocol
           &IoLink          // Settings
       );

// configCANopen
CanOpenSetting CanOpen = { 0 };
CanOpen.RxPdoCount = 4;
CanOpen.RxPdos[0] = { TRUE, 16, 0x1800, 0xFF };
CanOpen.RxPdos[1] = { FALSE, 48, 0x1801, 0xFF };
CanOpen.RxPdos[2] = { FALSE, 48, 0x1802, 0xFF };
CanOpen.RxPdos[3] = { FALSE, 0, 0x1803, 0xFF };

CanOpen.TxPdoCount = 4;
CanOpen.TxPdos[0] = { TRUE, 16, 0x1400, 0xFF };
CanOpen.TxPdos[1] = { FALSE, 48, 0x1401, 0xFF };
CanOpen.TxPdos[2] = { FALSE, 48, 0x1402, 0xFF };
CanOpen.TxPdos[3] = { FALSE, 0, 0x1403, 0xFF };

CanOpen.SdoCommandCount = 1;
CanOpen.SdoCommands[0].Index = 0x6060;
CanOpen.SdoCommands[0].SubIndex = 0;
CanOpen.SdoCommands[0].Length = 1;
CanOpen.SdoCommands[0].Data[0] = 0x1;

nRet = AddModuleConfiguration(
           1,                // EthercatSlaveID
           0x70,             // LinkedDeviceID, it is CANopen device's node ID for CANopen protocol
           configCANopen,    // Protocol
           &CanOpen          // Settings
       );

// configEsi
AddModuleConfiguration(3, (int)strlen("Sanyodenki RS2 special"), configEsi, "Sanyodenki RS2 special");

使用需求

  RT Win32
最低支援版本 4.0 4.0
标头档 ksapi.h ksapi.h
程式库 KsApi_Rtss.lib KsApi.lib

参见

Create

GetConfiguredModuleCount

GetModuleConfiguration

RemoveModuleConfiguration

Start